package com.ting.test.algorithms.腾讯云时期;

/**
 * 给定一个有序数组arr，代表坐落在X轴上的点
 * 给定一个正数K，代表绳子的长度
 * 返回绳子最多压中几个点？
 * 即使绳子边缘处盖住点也算盖住
 * <p>
 * 分析:
 * 1.有序数组2=
 * 2.求最大值  最多能够覆盖的点数
 */
public class 绳子覆盖的点数 {

    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3};
        int count = func(arr, 10);
        System.out.println("绳子覆盖的点数:" + count);
    }

    private static int func(int[] arr, int length) {
        if (arr == null || length < 1) {
            return 0;
        }

        int left = 0;//
        int right = 0;
        int max = 0;
        int arrLength = arr.length;
        while (left < arrLength) {
            while ((right < arrLength) && (arr[right] - arr[left]) < length) {
                right++;
                continue;
            }
            max = Math.max(max, right - left);
            left++;
        }
        return max;
    }
}
